
Component({
  //一些组件选项
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },

  //组件的对外属性，属性设置中可包含三个字段,type 表示属性类型、 value 表示属性初始值、 observer 表示属性值被更改时的响应函数    
  properties: {

    // 商品id
    addId:{
      type: String,
      value: '',
      observer(newVal, oldVal) {
        // console.log(newVal)
      }
    },
    // 金额
    total:{
      type: Number,
      value: '',
      observer(newVal, oldVal) {
        // console.log(newVal)
      }
    },
    // data-index
    index:{
      type: Number,
      value: '',
      observer(newVal, oldVal) {
        // console.log(newVal)
      }
    },
  },
  //组件的内部数据，和 properties 一同用于组件的模版渲染
  data:{

  },
  //组件的方法，包括事件响应函数和任意的自定义方法 
  methods: {

// 输入input数量
changeCarNumber(e) {
  console.log(e)
  this.formatNum(e)
  let num = e.detail.value
  if (num < 1 || num == '') {
    num = 1
  }else if(num >= 1000){
    num = 999
  }
  this.setData({
    total:num,
  })
  this.return_amount()
},
formatNum(e) {  //正则验证金额输入框格式
  e.detail.value = e.detail.value.replace(/^(\-)*(\d+)\.(\d{6}).*$/, '$1$2.$3')
  e.detail.value = e.detail.value.replace(/[\u4e00-\u9fa5]+/g, ""); //清除汉字
  e.detail.value = e.detail.value.replace(/[^\d.]/g, ""); //清楚非数字和小数点
  e.detail.value = e.detail.value.replace(/^\./g, ""); //验证第一个字符是数字而不是 
  e.detail.value = e.detail.value.replace(".", "").replace(/\./g, "")//清楚小数点 
},
//增加数量
increase(e) {
  var that = this
  let count = that.data.total;
  count++;
  that.setData({
    total: count
  })
  that.return_amount()
},
//减少数量
decrease: function (e) {
  var that = this
  let count = that.data.total;
  count--;
  that.setData({
    total: count
  })
  that.return_amount()
},
//传出参数
return_amount:function(){
  this.triggerEvent('signEvent', {
    'total':this.data.total,
    'addId':this.data.addId,
    'index':this.data.index
  })
},
  },
  // 组件生命周期函数，可以为函数，或一个在methods段中定义的方法名
  attached: function(){},
  moved: function(){},
  detached: function(){},
  pageLifetimes: {
    show: function() {
      // 页面被展示
    },
  }
})
